import request from '../utils/request'

export interface School {
    id: number
    name: string
    logo?: string
    cover?: string
    productCount?: number
    memberCount?: number
    favoriteCount?: number
    tags?: string[]
    description?: string
    province?: string
    city?: string
    campusImages?: string[]
    address?: string
    transportation?: string
}

/**
 * 获取学校列表
 * @returns Promise 包含学校列表的Promise
 */
export function getSchools() {
    return request.get<{
        code: number,
        data: School[],
        message: string
    }>('/schools/list')
        .catch(error => {
            console.error('获取学校列表失败:', error);
            // 返回一个符合预期格式的错误响应，避免undefined错误
            return {
                code: 500,
                data: [],
                message: '获取学校列表失败'
            };
        });
}

/**
 * 获取学校详情
 * @param id 学校ID
 * @returns Promise 包含学校详情的Promise
 */
export function getSchoolDetail(id: number) {
    return request.get<{
        code: number,
        data: School,
        message: string
    }>(`/schools/${id}`)
        .catch(error => {
            console.error(`获取学校详情失败 (ID: ${id}):`, error);
            // 返回一个符合预期格式的错误响应
            return {
                code: 500,
                data: null as any,
                message: '获取学校详情失败'
            };
        });
}

/**
 * 搜索学校
 * @param keyword 搜索关键词
 * @returns Promise 包含搜索结果的Promise
 */
export function searchSchools(keyword: string) {
    return request.get<{
        code: number,
        data: School[],
        message: string
    }>('/schools/search', {
        params: { keyword }
    })
        .catch(error => {
            console.error(`搜索学校失败 (关键词: ${keyword}):`, error);
            // 返回一个符合预期格式的错误响应
            return {
                code: 500,
                data: [],
                message: '搜索学校失败'
            };
        });
}

export default {
    getSchools,
    getSchoolDetail,
    searchSchools
} 